InterMUD
InterMUD or interMU* communications is the commonly accepted terminology for different methods of allowing MUDs to communicate with each other. Some of the more common of these methods are custom protocols over the internet, IPC messages, and bots. The custom protocol method, which is by far the most popular method, has even led to the emergence of the interMUD communication network. These networks are capable of allowing numerous MUDs to communicate with each other. As a result of this ability to have so many MUDs on a particular network, it is not uncommon to have MUDs connected to two or three of these networks in order to have a wide variety of other MUDs to communicate with. Below is an overview of the more well-known custom protocols. The first InterMUD network was created using the TMI Mudlib in 1992, when the MudOS driver incorporated network socket support. Intermud-3 Intermud-3, more commonly referred to as I3, uses TCP connections in order to connect each MUD to a central server, where most messages are routed through the server to other MUDs. In addition, I3 permits OOB (out-of-band) connections between MUDs, which temporarily results in direct communication between two participating MUDs. One of the primary benefits of I3 is that it allows MUDs to connect to I3 networks without server admin intervention. In recent years, I3 has been extended to support multiple routers on a single network for load balancing and redundancy. Since its initial incarnation in the mid 90s, the I3 protocol has gone through 3 revisions, adding various new features and suggestions for a future inter router network. As of early 2007, a practical inter router network implementation exists, and as of late 2008, an inter router network specification is available. Currently, there are three major I3 networks: gjs, which was run by Greg Stein (Deathblade); yatmim, which is run by the maintainer of the Dead Souls Mudlib; and adsr, which is run by the team at Anarres. Unfortunately the gjs network, which was the first public I3 network, is no longer very stable. As of March 2007, the gjs router has been down for over seven months. This has resulted in yatmim becoming a very popular network. Disagreement over network policy led to the creation of adsr as an alternative to yatmim. There are also a few isolated servers that are used primarily for testing purposes. Some of the services supported by I3 Note: Not all services are supported by all MUDs. A lot of these are listed as optional in the protocol. * channels chat between MUDs ** All MUDs on the network are able to create their own channels, similar to how IRC allows. The creator of the channel can control access to it through either a ban list or an invite list. * emotes send an action message to a user on another MUD * finger retrieve information about a user on another MUD * locate search on the other MUDs for a certain user * mail for sending mail to users on other MUDs * mud list retrieve a list of all MUDs upon logging onto the network * tell for sending a message to a user on another MUD * who list of what users are currently logged in to a MUD * beep (not in the official protocol specifications, but supported by some MUDs) trigger a sound for a user on another MUD * file (OOB service) list, retrieve or store files on another MUD * news (OOB service) similar to USENET news groups (no known implementations) Software To connect a MUD to the main I3 network or to one of the private I3 networks, an I3 client implementation will be needed. To facilitate this process, many open-source MUD implementations are distributed with I3 clients included. It is also possible to use the I3 specifications in order to create a custom implementation. For those interested in creating his or her own private I3 network, there is currently only one open source server implementation that is publicly available. This implementation is Tim's implementation. It is also possible to use the I3 specifications and the inter router network specifications in order to create a custom implementation. The latest release of the Dead Souls Mudlib contains a functional implementation of an I3 server, based on Tim's implementation, enhanced with administration commands and inter-router networking extensions. IMC2 IMC2 is short for InterMud Communications Protocol Version 2. Similar to I3, IMC2 connects MUDs using TCP connections and allows MUDs to connect without server administrator permission. The IMC2 protocol supports multiple routers on a single network in a way similar to I3 (and did so a lot earlier). However, one of the ways that IMC2 differs significantly from I3 is that it does not use so called mudmode connections, making it much easier to implement IMC2 on muds not written in LPC. Currently, there is only one active IMC2 network in use, MudBytes InterMud Communication Network. Some of the services supported by IMC2 Note: Not all services are supported by all MUDs. * channels chat between MUDs ** Channels are created and run by the people running the servers. * emote send an action message to a user on another MUD * finger retrieve information about a user on another MUD * locate search on the other MUDs for a certain user * mud list a list of all MUDs is given to a MUD when logging on * tell for sending a message to a user on another MUD * who list of what users are currently logged in to a MUD * beep trigger a sound for a user on another MUD Software In order to connect a MUD to an IMC2 network, an IMC2 client implementation will be needed. There are several IMC2 client implementations that are publicly available, including ones for LPMuds and Java MUDs. The most commonly used one for DikuMUD derivatives is the IMC2 Freedom implementation. In addition, it is also possible to use the IMC2 specifications in order to create a custom implementation. For those interested in creating their own private IMC2 network, the most commonly used server implementation is the IMC2 Freedom implementation. AberChat AberChat is used primarily by the type of MUD known as AberMUD. It uses TCP connections to connect each MUD to a central server. Some of the more distinctive characteristics of AberChat is that it does not rely on client MUDs to keep track of the other MUDs on a network, and it does not update a local list when other MUDs on a network become available or unavailable. Instead, in order to see what MUDs are out there, MUD users can send a request for a list of MUDs on the network to the server, which replies with a complete list. There is both a public and a private AberChat network. Both require the server administrator to manually add a new MUD to the network. Services supported by AberChat Note: Mail is not supported in older client implementations. * channels support for 3 channels - players, staff, and coders * mail for sending mail to users on other MUDs * mud list lets a user retrieve the list of MUDs on the network * tell for sending a message to a user on another MUD * who list of what users are currently logged in to a MUD Software In order to connect a MUD to an AberChat network, an AberChat client implementation will be needed. There are several AberChat client implementations that are publicly available on the SMiLE download page, as well as a SMAUG client at MudBytes. In addition, it is also possible to use the AberChat specifications in order to create a custom implementation. For those interested in creating his or her own private AberChat network, there is a publicly available server implementation located at MudBytes. MushLink MushLink is primarily used on MUSHes. It uses a TCP connection in order to connect a MUD to the central server. In contrast to the other interMUD networks so far listed, MushLink's server actually connects to the MUD instead of having the MUD connect to the server. This connection consists of a bot that logs in as a special user. This user uses special commands in order to both display and receive messages from the MUD. Services supported by MushLink * channels for chatting * mail for sending mail to users on other MUDs * mud list lets a user retrieve the list of MUDs on the network * tell send a message to a user on another MUD * who see who's online on another MUD Software MushLink requires no special code to be used on a MUSH. However, a MUSH needs to support the standard MUSH commands in order for the MushLink bot to work. For MUSHs that do not support the standard MUSH commands, it is possible to emulate them. The MushLink bot itself can be downloaded from PennMUSH web site. MudNet MudNet is derived from MushLink. It mainly differs from MudNet in that it supports some additional commands, supports more MU* types, and supports interMU* communications on certain MUSH types' own channel systems. The MudNet credits page provides more detail on the differences. MudNet is now defunct - it was shut down on March 14, 2010. Merentha InterMud Services (MIS) MIS was written specifically for the Merentha Mudlib, a specific MUD implementation. It uses UDP, instead of TCP, and sends directly to all MUDs that the sending MUD knows. There are no servers involved because it is entirely client-to-client communication. Services supported by MIS * channel one channel for chatting among all MUDs * mud list lets a user retrieve the list of MUDs on the network * tell send a message to a user on another MUD * who see who's online on another MUD Some Other Custom InterMUD Communication Protocols * CD Intermud (Genesis) * Circle Intermud * Intermud 2 (I2) * GoT Intermud * PSYC Intermud * RoM Intermud * Zebedee Intermud References External links *Protocol specs **Intermud Protocols: Information about most intermud protocols **Intermud.org: Information about the I3 and IMC2 intermud communication protocols **IMC2 Protocol: Information about the IMC2 intermud protocol and specifications. *MUD lists **The InterMUD Superlist List of MUDs on I3 and IMC2 **MudNet Worlds List: List of MUDs on MudNet. **Darkemud I2 list: List of MUDs using I2. *Networks **The Official Intermud-3 Homepage: Web site for the original I3 network. **The MudNet Team: Web site for MudNet. **MudBytes Intermud Communication Network: Web site for the MudBytes public IMC2 network. **LPMuds.net - Intermud: Web site for yatmim. *Software **MudBytes: Diku based IMC2 client/server code. **MudBytes: Diku based I3 client code, and LPC based I3 router code. **The Merentha Mudlib: The mudlib which MIS was written for. **Taurus IMC2 client: IMC2 client for LPMuds using MudOS. **Tim's code: IMC2 client for LPMuds using MudOS, and I3 server. **PennMUSH downloads: MushLink robot. **MudOS: Has the Lima Mudlib, an LP lib for MudOS, which supports I3. **Discworld's distribution mudlib: Discworld is another LP mudlib for MudOS that supports I3. **Dead Souls: Dead Souls is an LP mudlib using MudOS that supports I3. **LPUniMudlib: LPUniMudlib is a MudOS mudlib that supports I3. **AFKMud: SMAUG derivative which includes IMC2 support. **CoffeeMud: Java MUD that supports I3 and IMC2. **SMiLE mud downloads: has aberchat clients for AberMUDs and DikuMUDs **MudBytes: Aberchat server, and SMAUG Aberchat client code. Category:Protocol